#pragma once

//Macros for unittype ids
#define ZBDRONE			41
#define ZBSCV			7
#define ZBDROPSHIP		11
#define ZBFIREBAT		10
#define ZBMARINE		20
#define ZBZEALOT		77
#define ZBHLING			54
#define ZBLING			37
#define ZBOBSERVER		84
#define ZBULTRALISK		48
#define ZBSIEGETANK		23
#define ZBLURKER		195
#define ZBHYDRALISK		53
#define ZBKERRIGAN		51
#define ZBGHOST			100
#define ZBDRAGOON		78
#define ZBARCHON		76
#define ZBDARKTEMPLAR	74
#define ZBFGHOST		16
#define ZBHEROCREDIT	15
#define ZBPROBE			64
#define ZBMAPREVEALER	229

//Base Coordinates by player colour based on dropship spawn location
#define BMIDDLE			0

#define BRED			1
#define BREDX			230
#define BREDY			1181
#define BREDX1			0
#define BREDY1			864
#define BREDX2			704
#define BREDY2			1536

#define BBLUE			2
#define BBLUEX			2738
#define BBLUEY			1199
#define BBLUEX1			2208
#define BBLUEY1			896
#define BBLUEX2			3072
#define BBLUEY2			1568

#define BTEAL			3
#define BTEALX			162
#define BTEALY			1964
#define BTEALX1			0
#define BTEALY1			1536
#define BTEALX2			704
#define BTEALY2			2368

#define BPURPLE			4
#define BPURPLEX		2759
#define BPURPLEY		2024
#define BPURPLEX1		2208	
#define BPURPLEY1		1568	
#define BPURPLEX2		3072	
#define BPURPLEY2		2432	

#define BORANGE			5
#define BORANGEX		262
#define BORANGEY		2694
#define BORANGEX1		0	
#define BORANGEY1		2368	
#define BORANGEX2		704	
#define BORANGEY2		3072	

#define BBROWN			6
#define BBROWNX			2809
#define BBROWNY			2828
#define BBROWNX1		2208	
#define BBROWNY1		2432	
#define BBROWNX2		3072	
#define BBROWNY2		3072	

#define CENTERX			1375
#define CENTERY			1570


//Macros for Choke locations - a few constants can be found in ZerglingBloodConstants.h
#define CHOKEREDX1		995
#define CHOKEREDY1		1375
#define CHOKEREDX2		1185
#define CHOKEREDY2		1275
#define CHOKEREDCX		1090
#define CHOKEREDCY		1325
#define CHOKEREDRAD		105

#define CHOKEBLUEX1		1665
#define CHOKEBLUEY1		1310
#define CHOKEBLUEX2		1825
#define CHOKEBLUEY2		1440
#define CHOKEBLUECX		1745
#define CHOKEBLUECY		1375
#define CHOKEBLUERAD	98

#define CHOKETEALX1		1150
#define CHOKETEALY1		1950
#define CHOKETEALX2		1215
#define CHOKETEALY2		2110
#define CHOKETEALCX		1182
#define CHOKETEALCY		2030
#define CHOKETEALRAD	85

#define CHOKEPURPLEX1	1725
#define CHOKEPURPLEY1	1980
#define CHOKEPURPLEX2	1725
#define CHOKEPURPLEY2	2175
#define CHOKEPURPLECX	1725
#define CHOKEPURPLECY	2077
#define CHOKEPURPLERAD	97

#define CHOKEORANGEX1	915
#define CHOKEORANGEY1	2580
#define CHOKEORANGEX2	1125
#define CHOKEORANGEY2	2720
#define CHOKEORANGECX	1020
#define CHOKEORANGECY	2650
#define CHOKEORANGERAD	122

#define CHOKEBROWNX1	1955
#define CHOKEBROWNY1	2605
#define CHOKEBROWNX2	1755
#define CHOKEBROWNY2	2689
#define CHOKEBROWNCX	1855
#define CHOKEBROWNCY	2647
#define CHOKEBROWNRAD	107

//Some color Macros
#define COLOR_RED		BWAPI::Color(BWAPI::Colors::Red)
#define COLOR_BLUE		BWAPI::Color(BWAPI::Colors::Blue)
#define COLOR_TEAL		BWAPI::Color(BWAPI::Colors::Teal)
#define COLOR_PURPLE	BWAPI::Color(BWAPI::Color(136,64,156))
#define COLOR_ORANGE	BWAPI::Color(BWAPI::Colors::Orange)
#define COLOR_BROWN		BWAPI::Color(BWAPI::Colors::Brown)

//Color ID
#define IDRED			0x6f
#define IDBLUE			0xa5
#define IDTEAL			0x9f
#define IDPURPLE		0x9c
#define IDORANGE		0xb3
#define IDBROWN			0x13

//Spawn changing beacon locations
#define DROPSHIPX		1100
#define DROPSHIPY		1057
#define BASEX			1791
#define BASEY			1088

//Hero spawn locations
#define MARINEX1		32
#define MARINEY1		32
#define MARINEX2		128
#define MARINEY2		96
#define MARINECOST		1

#define FIREBATX1		32
#define FIREBATY1		224
#define FIREBATX2		128
#define FIREBATY2		288
#define FIREBATCOST		3

#define DARKTEMPLARX1	32
#define DARKTEMPLARY1	416
#define DARKTEMPLARX2	128
#define DARKTEMPLARY2	512
#define DARKTEMPLARCOST	3

#define ZEALOTX1		416
#define ZEALOTY1		32
#define ZEALOTX2		512
#define ZEALOTY2		96
#define ZEALOTCOST		2

#define ARCHONX1		384
#define ARCHONY1		416
#define ARCHONX2		512
#define ARCHONY2		512
#define ARCHONCOST		2

#define ZERGLINGX1		768
#define ZERGLINGY1		32
#define ZERGLINGX2		864
#define ZERGLINGY2		96
#define ZERGLINGCOST	1

#define DRAGOONX1		768
#define DRAGOONY1		448
#define DRAGOONX2		864
#define DRAGOONY2		544
#define DRAGOONCOST		2

#define OBSERVERX1		1120
#define OBSERVERY1		32
#define OBSERVERX2		1184
#define OBSERVERY2		96
#define OBSERVERCOST	1

#define GHOSTX1			1088
#define GHOSTY1			448
#define GHOSTX2			1216
#define GHOSTY2			544
#define GHOSTCOST		2

#define ULTRALISKX1		1504
#define ULTRALISKY1		32
#define ULTRALISKX2		1600
#define ULTRALISKY2		96
#define ULTRALISKCOST	4

#define KERRIGANX1		1504
#define KERRIGANY1		480
#define KERRIGANX2		1600
#define KERRIGANY2		544
#define KERRIGANCOST	5

#define SIEGETANKX1		1856
#define SIEGETANKY1		32
#define SIEGETANKX2		1952
#define SIEGETANKY2		96
#define SIEGETANKCOST	5

#define LURKERX1		1856
#define LURKERY1		256
#define LURKERX2		1952
#define LURKERY2		352
#define LURKERCOST		4

#define HYDRALISKX1		1856
#define HYDRALISKY1		512
#define HYDRALISKX2		1952
#define HYDRALISKY2		576
#define HYDRALISKCOST	2

#define HGX				2750
#define HGY				1490